package org.forex.impl.engine;

import java.util.List;

import org.forex.vo.Instrument;
import org.forex.vo.Order;

public class Andamento {

	private int andamento=0;
	
	public String check(List<Instrument> lastPrices){
		
//		for(int i=1; i<lastPrices.size();i++){
//			if(lastPrices.get(i).getBid().doubleValue() > lastPrices.get(i-1).getBid().doubleValue())
//				++andamento;
//			if(lastPrices.get(i).getBid().doubleValue() < lastPrices.get(i-1).getBid().doubleValue())
//				--andamento;
//		}
		
		double somma=0.0;
		
		for(int i=1; i<lastPrices.size();i++){
			
			somma+=lastPrices.get(i-1).getBid().doubleValue()-lastPrices.get(i).getBid().doubleValue();
			
			if(lastPrices.get(i).getBid().doubleValue() > lastPrices.get(i-1).getBid().doubleValue())
				++andamento;
			if(lastPrices.get(i).getBid().doubleValue() < lastPrices.get(i-1).getBid().doubleValue())
				--andamento;
		}
		
		int percentuale=andamento>0?((andamento*100)/lastPrices.size()):((-1*andamento*100)/lastPrices.size());
		
		if(percentuale>=65){// && somma>0.0001){
			System.out.printf("\tAndamento %d (%f) per %s con percentuale %d\n",andamento,somma,lastPrices.get(0).getInstrument(),percentuale);
			if(andamento>0)
				return Order.BUY;
			if(andamento<0)
				return Order.SELL;
		}
//		if(andamento>0 && ((andamento*100)/lastPrices.size())>=75){
//			//System.out.printf("\tAndamento positivo per %s con percentuale %d\n",lastPrices.get(0).getInstrument(),((andamento*100)/lastPrices.size()));
//			return Order.BUY;
//		}
//		if(andamento<0 && ((-1*andamento*100)/lastPrices.size())>=75){
//			System.out.printf("\tAndamento negativo per %s con percentuale %d\n",lastPrices.get(0).getInstrument(),((-1*andamento*100)/lastPrices.size()));
//			return Order.SELL;
//		}
		return null;
	}
	
}
